1. Field of the Invention
The present invention relates generally to the field of telecommunications and, more specifically, to programmable telecommunication switches and controlling external computers supporting various telecommunications applications.
2. Discussion of the Prior Art
Programmable telecommunication switches are used in a wide variety of applications such as voice messaging, telemarketing services and the like. A programmable switch is usually controlled by a host device, which is typically a computer that runs a telecommunications application program. A customer may either purchase a commercially available application program that is compatible with the host and switch hardware or may elect to write a custom program.
In most applications, a programmable switch is connected to a public telephone network by one or more analog trunks or digital spans (e.g., a T1 span) which are terminated at the switch. The switch may also terminate one or more "lines" which are connected to devices such as telephone sets. Communication over any given trunk, span or line is carried out in accordance with an assigned signalling protocol.
Throughout the world, there are numerous "standard" signalling protocols in use. Some protocols which are widely used at present are E&M wink start, loopstart, groundstart and international compelled R2 using DTMF/MFR1 or MFR2 address signalling.
In conventional programmable switches, the selection of which signalling protocol is used with respect to a particular trunk, span or line is generally made before the equipment is delivered to the customer. That is, the switch manufacturer configures the switch, which may involve aspects of hardware or firmware or both, usually in a manner which cannot easily or quickly be changed (i.e., through firmware stored in a PROM). The manufacturer's configuration effectively assigns a particular signalling protocol for each trunk, span or line.
Several problems arise, however, with such conventional configuration. First, there is the lack of flexibility for a user to configure the switch as desired for a particular application. This is especially problematic where a need arises to customize, even infrequently, the specified signalling protocols after initial installation of the switch.
Another problem with conventional programmable switches relates to their inability to dynamically change the signalling protocol specified for a particular trunk, span or line. This problem may occur with some frequency in Europe where different compelled R2 signalling protocols are used in different countries or in any country where internationally originated calls are being generated through a tandem switching arrangement. The undesirable result is that the switch will probably not be able to properly handle the incoming call.
Another major disadvantage of conventional programmable switches is that they offer no capability for the user to easily develop and implement custom signalling protocols for applications. Custom protocols may be desirable, if not necessary, in applications where the switch is connected between the public telephone network and other devices (e.g., a voice messaging system). Because such devices may perform specialized functions and are not intended to connect directly to the public telephone network, they do not typically adhere to standard signalling protocols. Thus, there is a need for the user to be able to control the programmable switch in such a fashion that proper communication is maintained both with the public telephone network and with other devices connected to the switch.
Yet another disadvantage of conventional programmable switches is that they require excessively frequent intervention by the host device in order to process calls. For example, in a conventional switch, host intervention (i.e., an exchange of messages between the switch and host device) is typically required to either transmit or receive digits. This is necessary because the host device must instruct the switch to apply appropriate, available resources for the task at hand. In this example, the host might instruct the switch to connect an available tone generator to a particular channel to send digits, or connect a tone receiver to receive digits. In the context of an application where hundreds to possibly tens of thousands of calls per hour are processed by a switch, the number of messages that must be passed between the host and switch becomes quite large, which often results in reduced host and switch performance.